<?php
namespace app\web\controller;

use support\Request;
use think\facade\Db;
use app\util\ReturnCode;
use app\model;

class WebBase
{
    protected $user;

    /**
     * 该方法会在请求前调用 
     */
    public function beforeAction(Request $request)
    {
        // echo 'beforeAction';
        // 若果想终止执行Action就直接返回Response对象，不想终止则无需return
        // return response('终止执行Action');
        $token = $request->header('Authorization');

        if (empty($token)) {
            return error('未登录，请先登录', ReturnCode::NOLOGIN);
        }

        $jwtToken = new \Token();
        $checkToken = $jwtToken->checkToken($token);
        if($checkToken['status'] == 200){
            $jwt_data = $checkToken['data']['data'];
            $arr = (array)$jwt_data;
            $data = model\SystemUser::field('id,username')->where('id', $arr['id'])->find();
            if(empty($data)){
                return error('未登录，请先登录', ReturnCode::NOLOGIN);
            }

            $this->user = $data;
        }else{
            return error($checkToken['msg'], ReturnCode::UNAUTHORIZED);
        }
    }

    /**
     * 该方法会在请求后调用
     */
    public function afterAction(Request $request, $response)
    {
        // echo 'afterAction';
        // 如果想串改请求结果，可以直接返回一个新的Response对象
        // return response('afterAction'); 
    }

}